package com.tanhua.dubbo.server.api;

import com.tanhua.dubbo.server.pojo.Video;
import com.tanhua.dubbo.server.pojo.Visitors;
import com.tanhua.dubbo.server.vo.PageInfo;
import org.springframework.data.mongodb.core.aggregation.ArrayOperators;

import java.util.List;

public interface VideoApi {

    /**
     * 保存小视频
     * @param video
     * @return 保存成功后，返回视频id
     */
    String saveVideo(Video video);

    /**
     *分页查询小视频列表，按照时间倒序排序
     * @Param:  [useId, pageNum, pageSize]
     */
    PageInfo<Video> queryVideoList(Long userId , Integer pageNum,Integer pageSize);



    /**
     * 关注用户
     * @Param:  [userId, followUserId]
     */
    Boolean followUser(Long userId, Long followUserId);

    /**
     * 取消关注用户
     * @Param:  [userId, followUserId]
     */
    Boolean disFollowUser(Long userId, Long followUserId);

    /**
     * 是否关注用户
     * @Param:  [userId, followUserId]
     */
    Boolean isFollowUser(Long userId, Long followUserId);

    /**
     * 查询我的访客数据，存在2种情况：
     * 1. 我没有看过我的访客数据，返回前5个访客信息
     * 2. 之前看过我的访客，从上一次查看的时间点往后查询5个访客数据
     *
     * @param userId
     * @return
     */
    List<Visitors> queryMyVisitor(Long userId);


    /**
     * 按照时间倒序排序，查询最近的访客信息
     *
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<Visitors> topVisitor(Long userId, Integer page, Integer pageSize);
}
